import type { ExtensibleAuditedEntityDto, PagedAndSortedResultRequestDto } from '../type';

export enum MessageType {
  Default = 1,
  Warning = 2
}

export interface MessageReceivingDto extends ExtensibleAuditedEntityDto<string> {
  applicationName?: string;
  message?: number;
  title: string;
  content?: string;
  sendTime?: Date;
  sendUserId?: string;
  sendUserName?: string;
  tag?: string[];
  isRead: boolean;
  readTime: Date;
}

export interface MessageReceivingListDto extends ExtensibleAuditedEntityDto<string> {
  applicationName?: string;
  message?: number;
  title: string;
  content?: string;
  sendTime?: Date;
  sendUserId?: string;
  sendUserName?: string;
  tag?: string[];
  isRead: boolean;
  readTime: Date;
}

export interface MessageBatchOperateDto {
  messageIds: string[];
}

export interface GetReceivedMessagesInputDto extends PagedAndSortedResultRequestDto {
  isRead?: boolean;
  applicationName?: string;
  messageType?: MessageType;
  title?: string;
  content?: string;
  sendTimeStart?: Date;
  sendTimeEnd?: Date;
  ag?: string[];
  sendUserName?: string;
}
